<?php
// 只能在当前 request 生命周期缓存，要跨进程，可以再加一层缓存： memcached/xcache/apc/
$g_static_users = array(); // 变量缓存

// hook model_user_start.php

// ------------> 最原生的 CURD，无关联其他数据。

function area__create($arr) {
	// hook model_area__create_start.php
	$r = db_insert('area', $arr);
	// hook model_area__create_end.php
	return $r;
}

function area__update($aid, $update) {
	// hook model_area__update_start.php
	$r = db_update('area', array('aid' => $aid), $update);
	// hook model_area__update_end.php
	return $r;
}

function area__read($aid) {
	// hook model_area__read_start.php
	$area = db_find_one('area', array('aid' => $aid));
	// hook model_area__read_end.php
	return $area;
}

function area__delete($aid) {
	// hook model_area__delete_start.php
	$r = db_delete('area', array('aid' => $aid));
	// hook model_area__delete_end.php
	return $r;
}

function area__find($cond = array(), $orderby = array(), $page = 1, $pagesize = 1000) {
	// hook model_area__find_start.php
	$arealist = db_find('area', $cond, $orderby, $page, $pagesize, 'aid');
	// hook model_area__find_end.php
	return $arealist;
}
// ------------> 关联 CURD，主要是强相关的数据，比如缓存。弱相关的大量数据需要另外处理。

// 新建区
function area_create($name) {
	$r = area__create(array(
		'name' => $name,
	));
	return $r;
}

// 更新城市
function area_update($aid, $update) {
	$r = area__update($aid, $update);

	return $r;
}

// 查看单个城市
function area_read($aid) {
	$area = area__read($aid);
	return $area;
}

function area_read_cache($aid) {
	global $conf;
	$area = cache_get('area-' . $aid);


	if ($area === NULL) {
		$area = area_read($aid);
		cache_set('area-' . $aid, $area, 60);
	}
	return $area;
};

// 查看所有城市下的所有区
function area_read_all($cid) {
    $cond = array();
    $cond['cid'] = $cid;
	$arealist = area__find($cond);
	return $arealist;
}

function area_read_all_cache($cid) {
	global $conf;
    $arealist = cache_get('arealist_'.$cid);
    
	if ($arealist === NULL) {
		$arealist = area_read_all($cid);
		cache_set('arealist_'.$cid, $arealist, 60);
	}
	return $arealist;
};


?>